const path = require('path')


module.exports = {
  // 修改打包后的访问资源路径为./
  publicPath: './',
  lintOnSave: false,

  chainWebpack: config => {
    const svgRule = config.module.rule('svg')
    svgRule.uses.clear()
    svgRule
      .test(/.svg$/)
      .include.add(path.resolve(__dirname, './src/icons/svg'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]'
      })

    // 图片处理
    const fileRule = config.module.rule('file')
    fileRule.uses.clear()
    fileRule
      .test(/.svg$/)
      .exclude.add(path.resolve(__dirname, './src/icons/svg'))
      .end()
      .use('file-loader')
      .loader('file-loader')
    // 发布模式
    config.when(process.env.NODE_ENV === 'production', config => {
      // 指定入口文件
      config
        .entry('app')
        .clear()
        .add('./src/main-prod.js')
      // 配置并加载外部的CDN资源
      config.set('externals', {
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios: 'axios',
        echarts: 'echarts',
        nprogress: 'NProgress',
        'vue-quill-editor': 'VueQuillEditor'
      })
      // 首页内容定制
      config.plugin('html').tap(args => {
        args[0].isProd = true
        return args
      })
      //
      // plugins: [
      //   // 下面是下载的插件的配置
      //   new CompressionWebpackPlugin({
      //     algorithm: 'gzip',
      //     test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
      //     threshold: 10240,
      //     minRatio: 0.8
      //   })
      // ]
    })

    // 开发模式
    config.when(process.env.NODE_ENV === 'development', config => {
      // 指定入口文件
      config
        .entry('app')
        .clear()
        .add('./src/main-dev.js')
      // 首页内容定制
      config.plugin('html').tap(args => {
        args[0].isProd = false
        return args
      })
    })
  },


}
